import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// 关闭生产模式提示
Vue.config.productionTip = false
    // 关闭所有的日志和警告
Vue.config.silent = true

// 导入适配插件
import 'lib-flexible'
import { Card, Sidebar, SidebarItem, GoodsAction, GoodsActionIcon, GoodsActionButton, Tab, Tabs, NavBar, Tabbar, TabbarItem, Search, Col, Row, Swipe, SwipeItem } from 'vant';
// 导入样式重置
import './assets/reset.css'
Vue.use(Card)
Vue.use(SidebarItem)
Vue.use(Sidebar)
Vue.use(GoodsAction)
Vue.use(GoodsActionIcon)
Vue.use(GoodsActionButton)
Vue.use(Tab)
Vue.use(Tabs)
Vue.use(NavBar)
Vue.use(Tabbar);
Vue.use(TabbarItem);
Vue.use(Search);
Vue.use(Row);
Vue.use(Col);
Vue.use(Swipe)
Vue.use(SwipeItem)

// 全局路由守卫
router.beforeEach((to, from, next) => {
    // 根据路由名称 判断是否需要隐藏脚步栏
    if (to.name == "info") {
        store.dispatch("navActions", false)
    } else {
        store.dispatch("navActions", true)
    }
    next()
})

// const state = Vue.observable({ count: 0 })
var vm = new Vue({
    data() {
        return {
            age: 18
        }
    },
    router,
    store,
    render: h => h(App),
    // 让一个对象可响应。Vue 内部会用它来处理 data 函数返回的对象。
    // 返回的对象可以直接用于渲染函数和计算属性内，
    // 并且会在发生变更时触发相应的更新。
    // 也可以作为最小化的跨组件状态存储器，
    // render(h) {
    //     return h('button', {
    //         class: "ac",
    //         attr: { id: "box" },

    //         style: {},
    //         on: { click: () => { state.count++ } }

    //     }, `count is: ${state.count}`)
    // }
}).$mount('#app')
console.log(vm.$options)
    // vm.$data 
    // vm.$props
    // vm.$el